![]() SOFTWARE ARCHITECTURE FOR EXPERT SYSTEM
专利摘要:
There is disclosed a computer-implemented method comprising the steps of receiving an input value to be evaluated; thread the input value into a queue; select from the queue a pending entry value; determining an output value by inferring by the rule base the selected input pending value. Developments describe the dissemination of one or more output values, the planning in time and / or space of assessments of pending input values (particularly in terms of computing resources), the selective evaluation of input values, the use of a dependency graph, expiration parameters of rules in time, the use of fuzzy logic inference. System aspects, including components, and software are described. 136 words 公开号:FR3028076A1 申请号:FR1460382 申请日:2014-10-29 公开日:2016-05-06 发明作者:Jean-Philippe Poli 申请人:Commissariat a lEnergie Atomique CEA;Commissariat a lEnergie Atomique et aux Energies Alternatives CEA; IPC主号:
专利说明:
[0001] FIELD OF THE INVENTION The invention relates to the field of artificial intelligence in general and the field of rule-based expert systems in particular, in particular based on fuzzy logic. State of the Art Fuzzy Intelligent Systems (FIS) - or fuzzy expert systems - are systems that integrate or implement human expertise and that seek to automate or mimic the reasoning of human experts with complex systems. These eminently technical systems can be based on different aspects of mathematical logic and in particular on logic called "fuzzy logic". So-called "fuzzy" expert systems generally require more calculations than standard or conventional expert systems. In addition, these systems generally require the repetition of these significant calculations over time (for example when they are applied to dynamic systems that change over time). So-called "fuzzy" expert systems usually require computing power. Scientists developing fuzzy expert systems are usually led to build increasingly complex and "rich" operators. The computation time can then become more important than the conjunctions, disjunctions and negations that are generally found with classical expert systems. [0002] In addition, the fuzzy expert systems require the repetition of these calculations. Indeed, in conventional expert systems, only certain rules are activated at a given moment whereas with fuzzy expert systems, all the rules must be recalculated (at least a large part of them). According to the state of the art of the currently marketed expert systems (eg offered for download or purchase), the only currently available means to manage an input data stream (i.e., multiple data received over time) consists of restarting the evaluation at each time step. This approach 10 requires in particular to reevaluate the rules implemented in such a fuzzy expert system and repeatedly over time (for example every second). This approach produces the effect of continuous decision-making (eg "on the water" or "progressively" or "as and when" or "on a continuous basis", or in some cases even a decision 15 " interactive "or even" real-time "or" near-real-time "or" just-in-time "). A technical problem is that all rules must be re-evaluated at each iteration, including those whose entries have not changed. This is all the more expensive in terms of calculation that operators whose evaluation can be very complex can be involved in these calculations. This under-optimized situation is unsatisfactory in itself. In practice also, the devices and devices involved may not have sufficient computing power, even if the calculation would be distributed between several devices cooperating with each other. In a particular context of use, that of the Internet of Things, for example, a very large number of interacting objects are generally provided, but these objects do not necessarily have appropriate calculation means. In order to solve these different aspects, the patent literature remains silent in terms of fuzzy logic. Rare patent documents deal with the initial technical problem but in the context of conventional expert systems, that is, without taking into account the specificities of fuzzy logic. In the conventional framework, the document US8214316 teaches that the evaluation of the rules (e.g. "forward chaining") may be subject to notification of the changed entries. The other known documents do not deal with fuzzy logic. The invention proposed in this document makes it possible to meet these needs or limitations, at least in part. [0003] SUMMARY OF THE INVENTION There is disclosed a computer implemented method comprising the steps of receiving an input value to be evaluated; thread the input value into a queue; selecting from the queue a pending input value; determining an output value by inferring by the rule base the selected input pending value. Developments describe the diffusion of one or more output values, the time and / or space planning of the evaluations of the pending values (especially in terms of computing resources), the selective evaluation. of input values, the use of a dependency graph, expiry parameters of rules parts in time, the use of inference according to fuzzy logic. System aspects, including components, and software are described. [0004] According to a general aspect of the invention, there is disclosed a software architecture for obtaining optimized performance, for identifying the different output data according to rules and input data. [0005] More specifically, according to one embodiment of the invention, it is disclosed a fuzzy expert system capable of managing a flow (continuous or regular or discontinuous or irregular or periodic or aperiodic or intermittent) of inputs and restore progressively (eg "over water") the values of the corresponding outputs. The various embodiments of the invention are advantageously used in technical fields such as home automation or industrial control. In general, the invention will find application to monitor ("monitor") a given system or object by means of several sensors ("sensors") which measure different phenomena continuously (or at possibly different frequencies, intermittently or periodically). Methods and systems according to the invention can implement a home automation control system. For example, a fuzzy expert system according to the invention can measure over time (discretely or continuously) the variations in temperature, brightness and occupation of the parts to deduce and / or actuate corresponding commands (for example opening of the shutters). [0006] Advantageously, but optionally, the writing of the rules according to the invention is done in natural language (rather than by means of mathematical operators). This hides - at least in part - the operator who enters his expert rules the mathematical complexity underlying the running model. The use of natural language also improves the expressiveness of the expert system. This characteristic makes it possible to obtain a better coverage of the real situations by the rules. In other words, a fuzzy expert system based on rules expressed in natural language ultimately allows a better "capture" of reality. In other words, some embodiments advantageously manipulate rules or expressions using the vocabulary of natural language, improving the understanding (and hence the subsequent manipulation) of said rules or expressions. This advantage is inherent in fuzzy logic, as stated in L.A. Zadeh's The concept of a linguistic variable and its applications. The invention is advantageously applicable for both "conventional" and "fuzzy" expert systems. [0007] Fuzzy logic is an extension of classical logic to approximate reasoning. By its numerical aspects, it is opposed to modal logics. In contrast to Boolean algebra, fuzzy logic allows the truth value of a condition to traverse a domain other than the {true, false} pair. In fuzzy logic, there are 15 degrees in satisfying a condition. Fuzzy logic assigns degrees of truth to a relation of the style x is_more_ than y_ of z, constructed and / or refined by learning. In general, fuzzy relations will make it possible to encode graduated, empirical or typical knowledge acquired directly or by heuristics, inductions, etc. The transitions used can be linear, hyperbolic (e.g. sigmoid or hyperbolic tangent), exponential, Gaussian, etc. The methods and systems of the invention generally facilitate human-machine interactions. In particular, they can help to relieve the user of tedious manipulations, sometimes repetitive and often complex. Generally, the various embodiments of the invention lead to the optimization of the cognitive effort to be provided by the user when using the expert system according to the invention. In other words, the technical effects related to certain aspects of the invention correspond to a reduction in the cognitive load of the user. [0008] DESCRIPTION OF THE FIGURES Various aspects and advantages of the invention will appear in support of the description of a preferred embodiment of the invention but not limited to, with reference to the figures below: FIG. general architecture of an exemplary method according to the invention; Figure 2 illustrates an exemplary rule represented as a graph; Figure 3 illustrates an example of a graph with nodes having priorities. [0009] DETAILED DESCRIPTION OF THE INVENTION In general, a rule-based system is a tool capable of reproducing the cognitive mechanisms of an expert in a particular field. More precisely, an expert system is a software capable of answering questions, making reasoning based on known facts and rules. It can be used as a tool for decision support. An expert system consists of three parts: a fact base, a rule base, and an inference engine. The inference engine is able to use facts and rules to produce new facts, until the answer to the expert question is posed. An expert system can rely on formal logic mechanisms and use deductive reasoning. It can for example be based on the logic of the propositions ("logic of order 0"), or the logic of 7 3028076 predicates of the first order ("logic of order 1"). Fuzzy logic techniques can also be used. The algorithms for performing the inference calculation are various and may in particular be specific to the nature of the logic that is implemented. For example, for the logic of order 0 - used among others by the business rules management systems (BRMS) -, the forward chaining or backward chaining algorithms ") Make it possible to start from the facts and to deduce the conclusions from them (or conversely to start from the conclusions to know the facts which are at the origin of them). In the 1980s, the Rete and Novel algorithms replaced these chaining algorithms by proposing a step of filtering the rules impacted by the facts. For the first order logic, the chaining algorithms are used in conjunction with a unification algorithm that makes it possible to instantiate a predicate for one or more individuals in the space under consideration. Finally, in fuzzy logic, the inference methods of Zadeh, Mamdani and Sugeno can be used. [0010] In knowledge-based systems expressed in natural language, knowledge is generally represented by rules of the form: "if a magnitude is [adjective] and another magnitude is [adjective] then the magnitude of the output is [adjectiveT For example: "if the outside temperature is very cold and the rain is fine then the risk of ice is high". The methods and systems of the invention perform one or more operations or steps, including steps of a) storage b) measurement or observation c) planning the evaluation d) evaluation 30 itself and e ) of diffusion. [0011] More specifically, the method comprises one or more of: a) storage steps; the changes observed in the entries can be stored in a queue (this queue or "buffer" advantageously allows to manipulate data in 5 entries that could change or accumulate faster than the processing capabilities of the system do not allow it). Optionally, in application of its own policy, the queue according to the invention can delete, and / or merge elements (for example if the refresh rate of the inputs is too high). In other words, the queue may not be "passive" (in the sense of a mere temporary storage space) but instead be "active", i.e. actively participate in the overall system; b) steps of measurement or observation or monitoring or monitoring of the current context (including and not limited to the monitoring of the state of the machine, ie processor load or activity or calculation means, instantaneous use of memory, etc.); in addition, these steps may further comprise steps of selecting certain elements to be removed from the queue, for example with a view to their processing (according to the implemented policy); 20 - c) planning stages regarding the evaluation of the selected elements on the various physical calculation means (according to the different granularity levels accessible, from the server clusters, the servers, the processors within the servers, the cores within the processors, also the subdivision of the calculation tasks, for example the calculation threads, etc.). For example, if the elements are independent (that is, they do not influence the same outputs), it is possible in some cases to perform calculations in parallel. In other words, the scheduling component can select one or more entries (or group of entries) that have changed or been modified and may decide to assign its evaluation to an entity (a heart, a calculator) and / or may simply ignore an input group if it deems that the machine is too busy and / or that these changes are not informative or redundant. d) steps for evaluating the outputs from the elements selected upstream; 5 - e) steps of dissemination of the new output values (in consideration of the locally defined dissemination policy); the methods of said broadcasting can be carried out in various ways and for the purpose of either various sub-entities (generally out of the fuzzy expert system, but in particular cases to components internal to this system). In general, there is disclosed a method of operating a rule base computer 150, the method comprising the steps of receiving an input value 101 to be evaluated; Evaluating by inference by means of the rule base 150 an output value 102 corresponding to the input value 101; characterized in that the method comprises the steps of threading the input value into a queue 110; select 112 in the queue 110 a pending entry value; and determining an output value 102 by inferring by the rule base 150 the selected pending input value. An input value can be a numeric value (for example "38") or a symbolic data item or a variable (for example "a") or even a sequence of characters (for example "38 ° C"). Rule base 150 includes rules. A rule - in the sense of the invention - consists of several elements: 30 propositions, expressions (unary, binary, ...) and conclusions. Proposals may include linguistic variables in the context of fuzzy logic. A rule comprises several expressions (first fruits, conclusions) and one or more operators (for example standard predefined logical operators "if", "then", etc. as well as specific operators "before", "after", "as long as "). For example a rule can be "if the temperature is high then open the window"). An expression may include a sequence of characters (for example "if the temperature is high" or "open the window"). An expression can be a regular expression. An expression can be a regular expression. An expression can be a formal expression. Advantageously, a rule or expression manipulated by the method according to the invention comprises vocabulary belonging to the natural language (ie the words or sequences of characters are words of the natural language), 15 improving the comprehension of the rules by the user and reinforcing the language. expressiveness of these same rules (eg their ability to "capture" the real world). An input value according to the invention is "flipped" ("to queue" in English) or "placed in a queue". An input value is then selected from pending values. Specifically, this selection may be due to the queue itself (e.g., when the storage capacity of the queue is reached, the queue may "push" one or more input values to the queue. evaluation or to other components of the system). In general, the selection is due to the scheduling module 30 (i.e. the steps of scheduling the evaluations), for example according to a "pull" mode. The planning component (the planning steps) participates in the control of the system thus defined. In some embodiments, the threading may be of the type "First In 5 First Out." In some embodiments, the queuing may involve processing on the values. to be associated with a "policy", ie a set of rules.These rules are predefined.They can be of logical type (according to various modalities, for example classical logic.They are sometimes 10 configurable (in advance and / or on demand ie running the process or global system.) In this case, in the queuing field, the waiting values can be "ordered" and / or "sorted" and / or or "grouped" and / or "erased." The processing criteria are variable (weights, correlations, scoring, etc.). [0012] The queuing step (i.e. the input queuing component) may place the perceived changes to the entries in a queue so as not to lose any information. In one embodiment, the queue (or the corresponding system component) is not necessarily of limited capacity as a buffer can be; a queue according to the invention can optionally be adapted to the management of a large amount of data. Depending on its policy, the input queuing component may delete items or merge them, for example if an entry changes values without the change being significant. In another example, it also allows to group by arrival time. Actively solicited by the planning stage or pushed by the queue management, an input value is selected. [0013] 30 12 3028076 Subsequently the input value is "executed" (i.e. "the expression or rule is evaluated"). In other words, according to a systemic view, the evaluation component receives a group of modified entries and by inference with respect to the rule base calculates the outputs. [0014] For example, the value of the speed input ("The speed is high ") Can be evaluated: a value can be determined at the output. Considering the fuzzy rule or command "if the fever is high, then administering aspirin", an entry will be a temperature value (for example "41 ° C"). is not strong below 38 ° C, and that it is strong above 40 ° C according to the base of rules (ie gradually more and more strong between 38 ° C and 40 ° C (linearly, exponentially, or according to continuous functions) An output value will be an expression "administering aspirin" or a value / quantification, for example "X" milligrams of aspirin, the actual evaluation being done by inference. inference is a movement of thought from principles to conclusion, the term refers to the actions of bringing together a set of propositions, leading to a demonstration of truth, falsity or probability, in the form of a proposition called conclusion According to the invention, the inference can be ductive or inductive or even abductive. In one development, the method further comprises a step of broadcasting one or more output values 102. In system terms, the scheduling component, in application of its policy, may select a particular output value. [0015] The broadcast component may also, depending on its policy, over-select values before communicating them (i.e. select previously selected values). [0016] For example, the broadcast component may communicate or broadcast output values at regular intervals in time and / or when a particular event occurs and / or if certain conditions are satisfied, etc. Taking account of the history can for example contribute to the fusion or the assimilation of the input values; taking into account certain predefined thresholds may cause the broadcast component not to reiterate the broadcast of a result associated with an entry if a very close value (eg within the limits of predefined thresholds) has already been communicated in the past , at least during a predefined time window, etc. .... [0017] In other words, the broadcast step (respectively the broadcast component) comprises a step of communicating the output values outside the fuzzy expert system according to its policy. It can thus diffuse the values of the only outputs having changed of 20 values and / or to join therein the interpretation information (all or part of the values making it possible to trace the inference for example) and / or to communicate the values of the values. outputs having experienced a significant change (greater than a threshold) and / or output values that have not changed in value but whose interpretation information is different. The component or unit or unit in charge of the "diffusion" or "communication" or "publication" itself of this output value 102 may be the component 130 for example. By "broadcast" or "communication" or "publication" is meant an external or external broadcast or communication (the other exchanges or message passages are internally performed to the system 100. The system 100 from the point of view the user or from a systemic point of view appears as a "black box", which processes (according to a regulation or own internal processing) a certain number of data and publishes certain values at the output. many: visual display (LCD screen, flash, etc.), data transmission or message passing (eg email, data channel, RSS feed), audio signal or broadcast, vibratile signal (or a combination of these communication modes) . [0018] In a development, the step of evaluating a selected pending input value includes a step of scheduling the pending input value evaluations in time and / or in space. [0019] It is emphasized that at least one pending input value selected upstream can be evaluated. The evaluation step may in fact comprise steps consisting in allocating the calculation tasks to the different calculation means (physical and also temporal distribution). The term "planning" means "organizing" (i.e. scheduling in time and space). Planning in time and / or space includes, for example, ordering or organizing or orchestrating calculations (for example, "threads" or any other computing subtask corresponding to different levels of granularity) as well as to assign them to computational units, i.e. allocation of computational tasks in space (physically between the different processors or processor cores, multicore or manycore CPUs). In a development, a selection of input values (having been selected) is evaluated in turn. [0020] 3028076 Evaluation or execution can be selective. Of the input values selected in the queue, for example by the scheduling component, only a fraction may eventually be evaluated. In other words, a selection of input values previously selected can be evaluated. The method according to the invention can indeed not calculate or evaluate certain input values. In a positive manner, only certain 10 expressions or input values are evaluated. This selection can be done because of different constraints or reasons (e.g. economy of calculations, speed, etc.). According to one aspect of the invention, the method is computationally efficient. [0021] The manner of selecting the expressions or values that will be evaluated alone can be done in different ways (e.g. relevance criteria, thresholds, etc.). [0022] The method may evaluate one or more input values only when necessary. In one embodiment, the threading step or unit may group entries, for example, depending on the modification context (e.g., the time the entries changed) and the planning step or scheduler. can retrieve a group of entries associated with this same context. In one variant, the context may be the place where the entries have changed. Other variants use combinations of date and place etc. [0023] In a development, the method further comprises a step of separating the graph corresponding to the rule base 150 into several disjoint sub-graphs, a step of selecting at least one sub-graph comprising a node corresponding to a 5 input value pending and a step of evaluating said selected sub-graph. In order to determine which input values are needed for evaluation, it is advantageous to represent the dependency between all 10 elements that make up the rule or expression. In this way, optimizations can be carried out (redundancy deletions, calculations restricted to the only necessary calculations, etc.). Two methods are described below. [0024] In a particular embodiment, a representation of the rules in the form of a graph makes it possible to isolate the nodes (corresponding to the different rules or expressions making up these rules) which it is advantageous to carry out the reevaluation. [0025] The rule base can be represented in the form of a graph rather than in the form of a forest (a set of trees) because in doing so it is possible to ensure the uniqueness of the nodes. According to this aspect, a part of a rule (a proposition, an expression, a conclusion, an entry, an exit ...) can only be represented by a single node. In other words, there is a bijection of the nodes to the parts of rules and the rules themselves. Thus, if the same rule part appears several times in different rules, it can only be evaluated once. [0026] When a certain subset of the inputs changes at a time t, only the nodes that are affected can indeed be reevaluated. [0027] 17 3028076 It is advantageous to identify different disjoint subgraphs of the graph (which represents the whole rule base). Concretely, the graph G corresponding to the base of all the rules will be disjoint into several connected graphs Gi for which there is no common edge between these different Gi. The disjointed graphs thus have no node in common, so no part in common and therefore no input or output in common. Thus, it becomes possible to evaluate in parallel the different disjoint graphs of the global graph. [0028] The graph is oriented (for example, node A facing node B). The evaluation of a given node can have a consequence on the evaluation of a node that depends on it. To proceed with the evaluation of the nodes of the graph, said graph can be traversed. When loading the rule base, during the construction of the graph, each node is associated with a certain evaluation "priority" relative to its depth in the graph (in one embodiment, the input values can be associated with a priority equal to zero, other nodes may have the same priority but generally the different nodes 20 are associated with different priorities). Once the various priorities (or depths) have been determined, some nodes - determined by the paths connecting them to the nodes representing an input of the system - are recalculated. Nodes are evaluated in turn only if at least one of their predecessors has changed in value. If a node does not change value, evaluation of the paths starting from itself does not take place. The global graph associated or representing the rule base is first disjoint into several disjointed sub-graphs, which allows processing or parallel analysis (the sub-graphs are "independent"). The method then selects one or more subgraphs. A selection criterion comprises detecting one or more nodes representing for example the only sufficiently changed input values i.e. that have been selected by the scheduler from the queue containing the input values. Finally, the subgraph is evaluated. Disjoining the graph into several subgraphs therefore makes it possible to parallelize the calculations and to allocate these calculations to independent cores and / or threads. Advantageously, this parallelization reduces the possibility of errors in the calculations, improves the processing speed, optimizes the use of resources or calculation means, etc. In a development, the step of evaluating a sub-graph includes a step of traversing said sub-graph, a step of recursively associating a priority with each node of the subgraph and a step of evaluating the nodes by increasing priority. The priority is more generally a coefficient or a parameter or a value. Other embodiments of the invention involve not a priority value but a "depth". There are various ways to annotate the graph. It is possible in one embodiment to associate the inputs with a value equal to zero and to proceed incrementally as the graph is traversed (the nodes associated with the lowest priority values then being processed first). Other embodiments of the invention may use other weighting or scoring techniques. In one development, the method further comprises a step of comparing the character strings composing the expressions making up the rules of the rule base, a step of deleting the redundancies between said expressions so as to obtain unique expressions. and a step of evaluating said unique expressions. [0029] 5 Alternatively to the representation in the form of a graph, ie without resorting to a mode of representation and / or analysis of the data in the form of a graph (ie representation alone, analysis alone, or representation and analysis in the form of a graph), it is possible to make comparisons of strings. [0030] An expression may be present in several rules. For example the expression "the temperature is high" can be present in a first rule "if the temperature is high then open the window" and a second rule "if the temperature is high then administer aspirin". [0031] It is possible to uniquely represent expressions appearing multiple times in the rule base. One way of doing things includes string comparison operations that make up expressions or rules. Redundancies can be partially or completely removed. [0032] In a development, a portion of a rule of the rule base 150 is associated with a parameter / expiry value in time. In some embodiments, no rule (or even a rule) expires, i.e. the validity of the rule is persistent over time. In other embodiments, one or more rules (or parts of rules) may expire in time (according to various settings). According to one aspect of the invention, a portion or portion of a rule may expire in time (" expire ", become" obsolete "or" obsolete "or" not operable "or" without effect "). A rule portion may be a proposition or an expression for example. Expirable rule parts are therefore objects that have a limited lifetime (or whose calculated value has a limited duration in time). When this time is exceeded, i.e. expired or expired, the planner (among other units of the system) may make the decision not to evaluate the rule portion in question. In practice, the planner can check whether the expired expression is used in one of the calculations as planned in time and / or space. Where appropriate, the expression is evaluated; otherwise, the expression is left unchanged with its expired value. In some cases, the expired expression is deleted. For example if a rule is of the form "if tomorrow will be fine and today it rains so delay the laundry", the expression "tomorrow will be fine" can change value for two reasons: either forecasts 15 weather has changed (in this case it is not really an expiry but a simple change in value depending on the inputs of the system) or the value changes (eg due to the passage of the day of Wednesday midnight on Thursday). Even if the value of the weather forecast for Wednesday remains unchanged, the expression 20 will expire (in this case, it expires every 24 hours). In general, each expression may expire according to different temporal parameters. In some embodiments, advanced time parameters are used (time slots but also, for example, time derivatives, i.e. trend acceleration, etc.). Expressions or parts of rules may expire at very different time scales (eg every second or every millisecond for reactive systems). [0033] The expiration of the validity of the rule portions may be more modulated in a more sophisticated manner, for example depending on parameters, tests, circumstances or various conditions. For example, space parameters may be taken into account in determining the expiration or non-expiration of a rule (e.g. geo location or "geofencing" conditions, etc.). [0034] In one development, two substantially concomitant input values are treated as one and the same input. In embodiments, it is possible to consider that modifications of two different inputs occurring within a few milliseconds of intervals are actually concomitant ("substantially" concomitant) and hence merge or assimilate them. The optional use of predefined thresholds allows said assimilation. [0035] In a development, at least one rule is expressed in natural language. The advantage associated with the fact that a rule is expressed in natural language, as opposed to a formal language, lies in the expressiveness of the base of 20 rules thus constituted. In addition, in a context of editing these rules, this form is advantageous because understandable for the user. In a development, the evaluation by inference is done according to the logic of order 0 or the logic of order 1 or according to the fuzzy logic. [0036] Different families of algorithms exist for carrying out the inferential evaluation in the method according to the invention. One or the other logic mentioned can be used according to the advantages associated with these different logics and contexts of use. [0037] A computer program product is disclosed, said computer program comprising code instructions for performing one or more of the steps of the method, when said program is run on a computer. [0038] There is disclosed a system comprising means for carrying out one or more of the steps of the method. In a development, the system comprises means 10 for receiving an input value 101 to be evaluated; inference evaluation means by means of the rule base 150 of an output value 102 corresponding to the input value 101; and is characterized in that the system comprises storage means for threading the input value 101; calculating means for selecting an input value threaded and for scheduling in time and / or in space the evaluations of one or more pending input values; calculating means for evaluating the selected waiting input value threaded into an output value 102; input / output means for broadcasting one or more output values 102; Storage means, for example, volatile or persistent memories (e.g. flash memory, hard disk, DDRAM, SRAM, etc.). The computing means are processors or cores of processors. The input / output means (or "I / O" or "I / O" for 25 "Input / output" in English) are means of communication of different types (radio, wireless, wired eg Ethernet). a variety of TCP / IP protocols or others). In one development, the system includes an input / output component for receiving one or more input values; a donning component adapted to perform one or more of the steps of storing, grouping, merging and deleting input values; a scheduling component adapted to perform one or more of the steps of selecting, deleting, grouping, merging, allocating input values threaded; An evaluation component adapted to evaluate one or more input values threaded and manipulated by the inference planning component using the rule base; a broadcast component adapted to select and communicate one or more input values. [0039] A "pony" policy associated with a component or unit corresponds to a set of "internal" rules for the component or unit, a policy can be static, ie predefined and constant over time. A policy can also be dynamic, that is, variable over time.By speaking of a system composed of a set of components each associated with such "policies", a "general" policy may emerge, in the sense of a emergence or finding, resulting from the combination of the different policies implemented effectively locally for each component In other words, the set of policies of the different components can parameterize the overall behavior of the overall system. particular, different policy configuration files implemented in the different components can be made available (eg defined by the user, the service operator s supervision, via the network, etc.). The various policies are generally expressed by rules linking descriptive attributes of the problem or the aspect of the system to be monitored (eg in terms of refreshing time of the inputs, frequency of refreshing the outputs, etc.) or descriptive attributes of the system. the platform on which the system runs (eg number and processor occupancy, amount of available and used memory ...) and thresholds. For example, for the queuing component, a rule may be that if an entry changes value more than once in less than one second, only the last value will be selected. For the planning component, if the platform has several available cores, the execution can be parallelized. For the evaluation component, if a "FORWARD" operator is used, for example, a "version" of the operator - specific to the problem or aspect of the monitored system - for example a variant of the implementation of 10 the operator can be implemented. For the broadcast component, a policy may be to broadcast the changes every second, for example. In particular, with regard to the temporal aspect, a component policy may consider that modifications relating to two different inputs occurring within a few milliseconds of intervals are in fact concomitant ("substantially" concomitant) and will therefore be treated as one and the same. Entrance. A policy can configure or predefine data assimilations or mergers or aggregations. A merging or aggregating or data assimilation policy can advantageously be used when it is known that the values of the inputs are provided by a communication means with a certain latency (network ...). A policy is therefore a way to configure or parameterize a component with respect to a given application. The scheduling component can "select" and "allocate" input values previously threaded: in other words it can "propagate" particular input values (it can in particular select these values by the knowledge of the graph of 25 3028076 dependence). The broadcast component may perform the communication at a later time and thus "defer" the communication or broadcast. A component policy includes a set of rules in relation to tangible execution means for executing these rules. The policy associated with a component makes it possible to parameterize and modify the behavior ("emergent") of the component to which it applies. A policy typically includes a set of operations selected from the operations of filtering, ordering, sorting, segmenting, splitting, merging, deleting, skipping, adding, substituting, concatenating, compressing, storing one or more input values. A policy can be parameterized (e.g. previously) or parameterizable 15 (e.g. according to variables for example ...). In other words, a policy can be configured or configurable. In one embodiment, a policy may be "universal" in the sense that the different policies associated with the different components may be interchangeable. In another embodiment, the policies may not precisely be interchangeable between the different components. For example, regarding the operation of filtering, the threading unit will not apply the same type of filtering as the broadcast unit or even the planner. [0040] Certain particular embodiments preferentially associate certain types of operations with certain components. In these particular embodiments, the threading component is adapted to perform one or more of the steps of storing, grouping, merging, and deleting input values or data; the scheduling component is adapted to perform one or more of the steps of deleting, canceling, skipping, merging, allocating (to computing resources for example), associating or annotating (eg by state values) input values; the broadcast component is adapted to perform one or more of the steps of selecting (eg according to predefined criteria or thresholds), grouping, differing, choosing times in time, canceling input values or data ; the evaluation component is adapted to perform one or more of the steps of restricting or extending the evaluable operators (by choosing predefined implementation variants for example, ie changing the semantics of the operators). Figure 1 schematizes the general architecture of an exemplary method according to the invention. [0041] The architecture of a fuzzy expert system 100 is composed of a rule base 150, a set of inputs 101 (or "I" for "input") and a set of outputs 102 (or " 0 "for" Output "). As the inputs 101 change, the outputs 102 are calculated based on the rule base 150. This architecture is that of a "conventional" fuzzy expert system. According to the invention, three components specific to this architecture are added. [0042] The component 110 is a queuing component ("threading" or "Q" for "queuing") of the inputs 101. In the context of a system whose inputs change in value over time, eg progressively or " over the water ", this component captures these changes. In some embodiments, this component may apply different queuing policies. For example, certain rules - or policies ("pony" in English) - of filtering may take into account the capabilities of the machine (eg the host machine or the machine being monitored) and / or the nature of the changes themselves. (For example, if the value of an output has changed by less than 1%, it is not useful to consider its new value), or else to group the changes 5 (not exhaustive). output component 10. The outputs 102 change over time This component according to the invention advantageously makes it possible to "broadcast" (or "notify" or "communicate" or "transmit") the new output values 102. In some embodiments, explanations of the change in output values may also be provided Component 130, like component 110, may apply different predefined policies, for example, component 110 may inform changes in value of fates. ies 102 at a predefined time interval (for example every N seconds) and / or inform as soon as an activation value has changed, according to thresholds or ranges of thresholds (not exhaustive). The component 120 is a planning component of the calculations. This component 120 is informed or notified at step 112 of the arrival of one or more changes by the threading unit component 110. The component 120 may then trigger or actuate or solicit or control the component component 130 outlets. Depending on the current state of the machine or of all the machines, the component 120 is able to affect the calculations to a processor or a heart on a particular machine, to prioritize a calculation or a sub-component. computation task (eg thread), etc. As shown in FIG. 1, at each instant t, all the entries 101 having changed are queued by the threading unit 110 (possibly processed according to its policy). During the evaluation 140, if further 3028076 changes of the input values 101 arrive, the latter will not be lost but put following the queue within the component 110. The threading unit then notifies the user. step 112 planning unit 120 that new entries are available. This scheduling unit 120 then applies its policy and uses the evaluation unit 140 at step 122. The evaluation unit 140, at the end of the calculation, informs or notifies back (step 123) the planning unit 120 that the evaluation is completed. The component 120 informs in step 121 the broadcast unit 130 that it can broadcast the output changes (if any). The component 120 also executes its own policy, if any. Figure 2 shows an example of a rule in the form of a graph. [0043] According to one aspect of the invention, the rule base of the expert system can be optimized, in particular the representation of this rule base. In addition, according to another aspect of the invention, the evaluation unit can also be optimized. In particular, the evaluation 140 may be selective, that is to say, evaluate only the expressions impacted by the change observed for certain inputs 101. Advantageously, the method according to the invention aims at optimizing the arithmetic calculations or operations only to the necessary operations or calculations. In particular, the method avoids the execution of a portion of code whose results are not (really or strictly) necessary. (e.g. it is useless to calculate a result that is not used). The method according to the invention is advantageously economical in calculation, improving the associated response times. [0044] In practice, the method according to the invention for calculating an expression or rule of the expert system only when it is necessary, it is advantageous to represent the dependence between all the elements that make up the rule or expression. In this way optimizations can be carried out (redundancy deletions, calculations restricted to only the necessary calculations, etc.). A rule - in the sense of the invention - consists of several elements: propositions, expressions (unary, binary, ...) and conclusions. Proposals can include inputs (eg linguistic variables in the context of fuzzy logic). For example, in Fig. 2, in the rule or phrase 230 "if the temperature is hot and the air is not wet then the risk is zero", the expression 215 <da temperature is hot "is a first proposition, the expression "wet air" is a second proposition. The expression "the air is not wet" is a unary expression, the expression "the temperature is hot and the air is not humid" is a binary expression and the expression "the risk is null "is a conclusion. In order to be able to evaluate the conclusion, it is necessary to evaluate the expression "the temperature is hot and the air is not humid", which depends on the expression 215 "temperature is hot" and the expression 214 "l The air is not humid, which depends on the expression "humid air", which depends on the temperature and the measurement of the humidity of the air. In order to represent these dependencies effectively, it is advantageous to check that each expression exists only once in the chosen representation. According to an advantageous embodiment, the rule base can be represented by means of a graph in which each node represents an entity (e.g. variable, expression, conclusion, rule, etc.). An arc between two nodes A and B, denoted A -> B, indicates that the evaluation of B depends on the evaluation of A. In other words, when A changes value, the value of B must be recalculated. Thus, when a certain subset of the inputs changes at a time t, only the affected nodes are reevaluated. [0045] In most existing systems, a rule is represented by a tree and therefore a rule base corresponds to a tree forest. In the context of the invention, a tree is not sufficient because it is possible for rules to share entities (for example the same proposition). The graph representation advantageously makes it possible to obtain the uniqueness of the representation of each expression or entity. This uniqueness avoids the redundancy of calculations. By means of a graphical representation, it is sufficient to check in all the nodes of the graph if none of them carries the same information. [0046] This representation of the rule base as a graph combined with rules expressed in natural language is particularly advantageous for the manipulation of a fuzzy expert system. Indeed, for the same physical variable, depending on the membership function, the same fuzzy value can be associated with different values after "fuzzyfication", i.e. application of fuzzy logic techniques. For example, if the variable under consideration is the temperature, if the membership function is a trapezium whose small base is between the values 15 ° and 25 ° and at 1 on the ordinates, then all the values of temperature between 15 ° and 25 °. ° and 25 ° are worth 1 after fuzzyfication. In this case, there will be no calculation beyond the fuzzyfication of the temperature. This aspect makes the implementation of the method practical the sensors provide values that oscillate slightly or in a limited way. According to this implementation, if the value of a node does not change, its neighbor nodes are not reevaluated, saving calculations. [0047] FIG. 3 illustrates an example of a graph with nodes having priorities. [0048] In some embodiments, the representation of the rule base by a graph may not suffice. As shown in Figure 2, if the temperature and humidity change at the same time t, the parent nodes will be evaluated until reaching the evaluation of the expression 220 "the temperature is hot and the air does not." is not wet. However, the path between entry 202 "humidity" and this expression 220 is longer than that from entry 201 "temperature". Expression 220 "the temperature is hot and the air is not humid" will be evaluated twice: first time as dependent on the expression 215 "the temperature is hot" and a second time as dependent on 15 l 'expression 213' the air is not wet '. To avoid this type of disadvantage, it is advantageous to use an oriented graph, i.e. to give an order to the nodes. Different embodiments are possible. According to a first embodiment, a priority queue is created which processes the nodes with the lowest priority first and which does not accept that the same object is present twice in the queue. To give priority to the nodes, it is possible to give the inputs a zero priority ie equal to 0 (these entries must be evaluated first in all cases), then give a node of another type the maximum of the priorities. of his antecedents incremented by one. With a priority queue according to a development of the invention, the expression 201 "temperature sensor" and the expression 202 "humidity sensor 30" are placed in the queue. In the example provided, the two expressions being equal priority, the expression 201 "temperature sensor 3028076" will for example be evaluated and the expression 215 <da temperature is hot "will be added to the queue. Then, the expression 202 "humidity sensor" will be evaluated and the expression 213 "the air is wet" will be added to the queue. The expression "hot temperature" is then evaluated and the expression "the temperature is hot and the air is not humid" is put in the queue with priority. However, since the expression "wet air" has priority (its weight or priority coefficient 2131 is equal to 1 while the other expression 220 is associated with a priority 2201 equal to 3), it is evaluated and the expression "air is not wet" is added to the queue. Since the 2141 priority of the expression 214 is 2, this expression 214 will be evaluated first and the expression 220 "the temperature is hot and the air is not wet" should be added. However, this phrase "the temperature is hot and the air is not wet" is already present in the priority queue so it is not added. Then, the expression 220 is in turn evaluated. In this way, it is avoided to carry out a double evaluation of the expression 220 "the temperature is hot and the air is not humid". [0049] Concerning the calculation planning component 120, the unit 110 (signal notification of changes in the value of the entries) watches for the value of each of the entries of the system. In this case, the changes are put in a queue in a certain order (e.g. according to the policy of this unit). At a time t, the input change notification setting unit 1101 communicates or notifies at step 112 the values of the new entries to the scheduling unit 120. Among other examples, a policy may express the need to merge changes in values that have occurred consecutively. One policy may also consider that modifications of two different inputs occurring within milliseconds of intervals are actually concomitant ("substantially" concomitant). In other words, a policy can configure or predefine data assimilations or mergers or aggregations. This last policy can be used when it is known that the values of the inputs are provided by a means of communication with a certain latency (network ...). The scheduling unit 120 which receives a communication or notification from the unit 110 responds according to its own policy. A simple policy may be to immediately trigger the evaluation of the neighboring nodes of each of the nodes representing the entries that have been changed. It is also possible to implement having one or more more sophisticated policies that may consist of, for example, managing parallel computing or calculation distribution. In some cases, the calculations can indeed be spread over several cores and / or multiple multi-core machines. More precisely, whether the different times are processed on different cores or machines, or for a given time t, the entities to be evaluated are separated (if this is possible) in order to be evaluated independently. According to one embodiment of the invention (combining a representation in the form of a graph of the rule base), this separation can be implemented as follows: in the graph G which represents the base of rules, it is selected a graph G 'included in G, so that there is a path starting from the entries that have just been modified. Then it is searched in G ', if they exist, Gi connected graphs for which there is no common edge between these different Gi. This case of figure occurs for example in the presence of two rules that do not share any expression or common entity. Each graph connected to Gi can then be evaluated in parallel (i.e. be the subject of parallel calculations). Optionally, for further optimization purposes, other policies may be implemented to take into account, for example, the capacity and the occupancy rate of the 5 machines used. Once a graph Gi has finished being processed by the evaluation unit 140, the result is provided to the result dissemination unit 130. This unit 130, depending on its policy, can indicate the new values of the modified outputs. The unit 130 may also broadcast or communicate more information, if necessary (eg, information for interpretation or understanding of the results.) In a development, time management rules are added and combined with the rules of the In particular, a system for which one or more expiry values are associated with the expressions or rules being manipulated is disclosed .In an expert system for continuously processing data, it is for example advantageous to express an expression in the form: "if an event occurred in the last 10 minutes then ..." Assuming that such an event occurred at t0, at t0 + 5 minutes, the proposition is true On the other hand, it will no longer be true at t0 + 15 minutes because the time window of 10 minutes will have expired.An expression like "an event occurred in the last 10 minutes" can therefore evolve, ie anger of expression or value, without an entry changing its value. According to one embodiment of this expiry technique, certain expressions (eg temporal expressions or containing time references) may be "expirable", i.e. their value has a limited duration and / or that these expressions are aware that they must be recalculated after a certain time (which can be parameterized or parameterizable eg variable function or else configured / configurable). When their value expires, these expressions are communicated by the planning unit 3028076 120 to the evaluation unit 140. Depending on the input queue and its policy, the planning unit 120 decides in particular which moment the expression must be reevaluated. [0050] The present invention can be implemented from hardware and / or software elements. It may be available as a computer program product on a computer readable medium. The support can be electronic, magnetic, optical or electromagnetic. [0051] The device may utilize one or more dedicated electronic circuits or a general purpose circuit. The technique of the invention can be realized on a reprogrammable calculation machine (a processor or a microcontroller for example) executing a program comprising a sequence of instructions, or on a dedicated computing machine (for example a set of doors as an FPGA or an ASIC, or any other hardware module). According to one embodiment, the device comprises a computer readable storage medium (RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical disk medium, magnetic cassette, tape magnetic storage disk or other storage device, or other computer-readable non-transit storage medium) encoded with a computer program (i.e., multiple executable instructions) which, when is executed on a processor or several processors, performs the functions of the embodiments described above. As an example of a hardware architecture adapted to implement the invention, a device may comprise a communication bus to which a central processing unit or microprocessor (CPU, acronym for Central Processing Unit) is connected. which processor 36 3028076 may be "multi-core" or "many-core"; a read-only memory (ROM), which may include the programs necessary for implementing the invention; RAM or Random Access Memory (RAM) with registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs; and a communication interface or I / O (I / O acronym for "lnput / ouput" in English) adapted to transmit and receive data. [0052] In the case where the invention is implanted on a reprogrammable calculating machine, the corresponding program (i.e. the instruction sequence) can be stored in or on a removable storage medium (eg a card SD, a DVD or Bluray, a mass storage means such as a hard disk eg SSD) or non-removable, volatile or non-volatile, this storage medium being partially or fully readable by a computer or a processor. The computer readable medium may be transportable or communicable or mobile or transmissible (i.e. by a 2G, 3G, 4G, Wifi, 20 BLE, fiber optic or other telecommunication network). The reference to a computer program which, when executed, performs any of the functions described above, is not limited to an application program running on a single host computer. On the contrary, the terms computer program and software are used herein in a general sense to refer to any type of computer code (for example, application software, firmware, microcode, or any other form of computer code). computer instruction) which can be used to program one or more processors to implement aspects of the techniques described herein. The means or computer resources can notably be distributed ("Cloud 37 3028076 computing"), possibly with or according to peer-to-peer technologies. The software code may be executed on any suitable processor (for example, a microprocessor) or processor core or set of processors, whether provided in a single computing device or distributed among a plurality of computing devices ( for example as possibly accessible in the environment of the device). The executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk or in read-only memory. In general, the program (s) may be loaded into one of the storage means of the device before being executed. The central unit can control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored in the hard disk or in the dead memory or in the other storage elements mentioned above. . Without limitation, the sensors (or sensors) may comprise one or more sensors or sensors selected from pressure, flow, temperature, oxygen, velocity, motion, position, and location sensors. radioactivity, energy, chemical products or components (eg nitrogen monoxide, ozone, smoke, pollutants, etc.) or biological products or components (eg viruses, contaminants, pollen, etc.). The sensors may include one or more MEMS, magnetometers, hygrometers, gyroscopes, accelerometers, biosensors, radars, sonars, cameras, 3D scanners, etc. The actuators or actuators may be pneumatic, hydraulic, electrical, mechanical, magnetic, pelletier, piezoelectric or electroluminescent, etc. They may for example comprise one or more cylinders, motors, heating resistors, 30 lamps, acoustic enclosures, electromagnets, or else heat-coolers, ionizers, valves, valves, winders, etc. In this case, the sensors and actuators according to the invention can be those used in the context of home automation applications. The actuators may include switches, keypads, dimmers, temperature sensors, flow sensors, occupancy sensors, humidity sensors, brightness sensors, smoke detectors, and the like. The invention will advantageously find application for the management of lighting systems, heating, air conditioning, opening / closing of shutters, garden watering, video surveillance, opening / closing of doors, ventilation, ventilation, lighting, access or any other system that can be controlled by a home automation system 15 20 25 30 39
权利要求:
Claims (15) [0001] REVENDICATIONS1. Method implemented on a computer for managing a rule base 150 the method comprising the steps of: - receiving an input value 101 to be evaluated; - put the input value in a queue 110; - select within the queue 110 a pending entry value; determining an output value 102 by inferring by the rule base 150 the selected pending input value. [0002] The method of claim 1, further comprising a step of broadcasting one or more output values 102. [0003] The method of claim 1, wherein the step of evaluating a selected pending input value includes a step of scheduling in time and / or in space the evaluations of pending input values. [0004] A method as claimed in any one of the preceding claims, wherein a selection of input values having been selected is evaluated. [0005] A method according to any one of the preceding claims, the method further comprising a step of separating the graph corresponding to the rule base 150 into several disjoint subgraphs, a step of selecting at least one subgraph comprising a node corresponding to a selected pending input value and a step of evaluating said selected sub-graph. [0006] The method of claim 5, the step of evaluating a subgraph comprising a step of traversing said subgraph, a step of recursively associating a priority with each node of the subgraph and a step of to evaluate the nodes by increasing priority. 5 [0007] A method according to any one of the preceding claims, the method further comprising a step of comparing the character strings composing the expressions making up the rules of the rule base, a step of deleting the redundancies between said expressions so as to to obtain unique expressions and a step of evaluating said unique expressions. [0008] The method of any one of the preceding claims, wherein a portion of a policy rule 150 is associated with a timeout parameter / value. 15 [0009] 9. Method according to any one of the preceding claims, two substantially concomitant input values being assimilated to one and the same input value. 20 [0010] 10. Method according to any one of the preceding claims, at least one rule being expressed in natural language. [0011] 11. A method according to any one of the preceding claims, the inference evaluation being carried out according to the 0-order logic, the 1-order logic or the fuzzy logic. [0012] 12. A computer program product, said computer program comprising code instructions for performing the steps of the method of any one of claims 1 to 11 when said program is run on a computer. 41 3028076 [0013] 13. System comprising means for implementing the method according to any one of claims 1 to 11. [0014] 14. System according to claim 13, comprising means for receiving an input value to be evaluated; - inference evaluation means by means of the rule base 150 of an output value 102 corresponding to the input value 101; characterized in that the system comprises: - storage means for threading the input value 101; Calculation means for selecting an input value threaded and for scheduling in time and / or in space the evaluations of one or more pending input values; calculating means for evaluating the selected pending input value threaded into an output value 102; [0015] Input / output means for broadcasting one or more output values 102; The system of claim 13 or 14 comprising: an input / output component for receiving one or more input values; a donning component adapted to perform one or more of the steps of storing, grouping, merging and deleting input values; a planning component adapted to perform one or more of the steps of selecting, deleting, grouping, merging, allocating input values threaded; an evaluation component adapted to evaluate one or more input values threaded and manipulated by the inference planning component by means of the rule base; A broadcast component adapted to select and communicate one or more input values.
类似技术:
公开号 | 公开日 | 专利标题 US10756991B2|2020-08-25|Simplified entity engagement automation WO2016066364A1|2016-05-06|Software architecture for expert system EP2364467B1|2020-01-01|Method for recognising sequential patterns for a method for fault message processing WO2012007489A1|2012-01-19|Processor for situational analysis US20210067527A1|2021-03-04|Structural graph neural networks for suspicious event detection US20150347905A1|2015-12-03|Modeling user attitudes toward a target from social media EP3523772A1|2019-08-14|System for detecting fraud in a data flow US20200084510A1|2020-03-12|Intelligent mitigation of concentration conflicts US20190260831A1|2019-08-22|Distributed integrated fabric US10511645B2|2019-12-17|Dynamic stream operator fission and fusion with platform management hints US20200074004A1|2020-03-05|Ascertaining user group member transition timing for social networking platform management EP3489831A1|2019-05-29|Method and device for monitoring a data generator process of a metric for the prediction of abnormalities US10949742B2|2021-03-16|Anonymized time-series generation from recurrent neural networks WO2018170253A1|2018-09-20|Edge devices, systems and methods for processing extreme data Chen et al.2017|Using deep learning to predict and optimize hadoop data analytic service in a cloud platform EP3758898A1|2021-01-06|Robot skill management Vargas-Solar et al.2016|Big continuous data: dealing with velocity by composing event streams Alam et al.2020|Video Big Data Analytics in the Cloud: Research Issues and Challenges US20210158147A1|2021-05-27|Training approach determination for large deep learning models US20210136098A1|2021-05-06|Root cause analysis in multivariate unsupervised anomaly detection US20220051112A1|2022-02-17|Automated model pipeline generation with entity monitoring, interaction, and intervention US10832393B2|2020-11-10|Automated trend detection by self-learning models through image generation and recognition US11222041B2|2022-01-11|Blockchain-based central repository and analytical platform for communications in the internet of things US20210294665A1|2021-09-23|Rule-based assignment of event-driven application Redlich et al.2014|Dynamic constructs competition miner-occurrence-vs. time-based ageing
同族专利:
公开号 | 公开日 WO2016066364A1|2016-05-06| US20170300804A1|2017-10-19| EP3213267A1|2017-09-06| FR3028076B1|2017-12-01|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 EP2402892A2|2010-06-17|2012-01-04|Palo Alto Research Center Incorporated|System and method for parallel graph searching utilizing parallel edge partitioning|EP3843016A1|2019-12-23|2021-06-30|Commissariat à l'Energie Atomique et aux Energies Alternatives|Method for screening data implemented by computer|US5778402A|1995-06-07|1998-07-07|Microsoft Corporation|Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types| AU7939100A|1999-10-27|2001-05-08|Ims Inc.|Air bag system controlled by fuzzy logic| US8176527B1|2002-12-02|2012-05-08|Hewlett-Packard Development Company, L. P.|Correlation engine with support for time-based rules| US8214316B2|2009-03-23|2012-07-03|Microsoft Corporation|Notification-based forward chaining|US10013513B2|2014-10-31|2018-07-03|International Business Machines Corporation|Accelerating particle-swarm algorithms| CN108984843B|2018-06-20|2021-02-09|北京大学|Interval information analysis method based on guard calculation| CN114004360A|2021-12-30|2022-02-01|北京壬工智能科技有限公司|Intelligent equipment diagnosis equipment and method based on fuzzy expert model|
法律状态:
2015-11-02| PLFP| Fee payment|Year of fee payment: 2 | 2016-05-06| PLSC| Publication of the preliminary search report|Effective date: 20160506 | 2016-10-28| PLFP| Fee payment|Year of fee payment: 3 | 2017-10-31| PLFP| Fee payment|Year of fee payment: 4 | 2018-10-30| PLFP| Fee payment|Year of fee payment: 5 | 2019-10-31| PLFP| Fee payment|Year of fee payment: 6 | 2020-10-30| PLFP| Fee payment|Year of fee payment: 7 | 2021-10-29| PLFP| Fee payment|Year of fee payment: 8 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 FR1460382A|FR3028076B1|2014-10-29|2014-10-29|SOFTWARE ARCHITECTURE FOR EXPERT SYSTEM|FR1460382A| FR3028076B1|2014-10-29|2014-10-29|SOFTWARE ARCHITECTURE FOR EXPERT SYSTEM| EP15771155.7A| EP3213267A1|2014-10-29|2015-09-30|Software architecture for expert system| US15/516,859| US20170300804A1|2014-10-29|2015-09-30|Software architecture for expert system| PCT/EP2015/072603| WO2016066364A1|2014-10-29|2015-09-30|Software architecture for expert system| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|